package com.example.accountbook;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.List;

public class AccountItemAdapter extends RecyclerView.Adapter<AccountItemAdapter.ViewHolder> {//账目列表适配器

    private List<CostBean> list;//声明一个list对象
    private Context context;//声明一个环境上下文对象

    public AccountItemAdapter(Context context,List<CostBean> list) {//构造器，获取传入的数据
        this.context = context;//获取传入的值
        this.list = list;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//创建列表项方法

        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_account,parent,false);//为列表项加载布局
        ViewHolder viewHolder = new ViewHolder(view);//用列表项实例，创建控件实例容器对象

        return viewHolder;//返回控件实例容器对象
    }

    @Override
    public void onBindViewHolder(AccountItemAdapter.ViewHolder holder, int position) {//绘制列表项方法

        CostBean bean = list.get(position);//从list中获取数据类对象

        if (bean.getType().equals("用餐")) {//判断类型，获取数控类对象中的类型属性字符串进行比较
            holder.ivType.setImageResource(R.drawable.butterfly);//用控件实例容器对象中的图片控件对象属性，调用修改图片资源方法替换图片
        }
        else if (bean.getType().equals("服装")) {
            holder.ivType.setImageResource(R.drawable.butterfly);
        }
        else if (bean.getType().equals("交通")) {
            holder.ivType.setImageResource(R.drawable.butterfly);
        }
        else if (bean.getType().equals("娱乐")) {
            holder.ivType.setImageResource(R.drawable.butterfly);
        }
        else  {
            holder.ivType.setImageResource(R.drawable.butterfly);
        }

        holder.tvTitle.setText(bean.getTitle());//修改文本，传入用数据类对象调用get方法获取的数据
        holder.tvExplain.setText(bean.getExplain());
        holder.tvMoney.setText(String.valueOf(bean.getMoney()));
        holder.tvTime.setText(bean.getTime());
    }

    @Override
    public int getItemCount() {
        return list.size();
    }//获取列表元素的数量,即列表项数据数量

    class ViewHolder extends RecyclerView.ViewHolder {//控件实例容器内部类，继承ViewHolder

        TextView tvTitle,tvExplain,tvTime,tvMoney;//声明文本控件对象
        ImageView ivType;//声明图片控件对象

        public ViewHolder(View itemView) {//构造器
            super(itemView);//调用父类构造器
            tvTitle = itemView.findViewById(R.id.tv_title_list);//获取控件实例
            tvExplain = itemView.findViewById(R.id.tv_explain_list);
            tvTime = itemView.findViewById(R.id.tv_time_list);
            tvMoney = itemView.findViewById(R.id.tv_money_list);
            ivType = itemView.findViewById(R.id.iv_type_list);

        }
    }
}


